package com.medsys.delegate;

import java.util.List;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;

import org.apache.commons.collections.map.HashedMap;

import com.medsys.appservice.PacienteAppService;
import com.medsys.model.Consulta;
import com.medsys.model.Paciente;
import com.medsys.view.Menu;

public class PacienteDelegate {
	
	private static PacienteAppService service = new PacienteAppService(); 
	private static Paciente paciente = null; 
	private static Menu menu = Menu.getInstance(); 
	
	public void cadastrar(){
		
		System.out.println("*** Cadastro de Paciente ***");
		
		String nome = menu.readStr("Nome: ");
		String cpf = menu.readStr("CPF: ");
		String rg = menu.readStr("RG: ");
		String endereco = menu.readStr("Endereco: ");
		String planoDeSaude = menu.readStr("Plano de Saude: ");
		
		Paciente paciente = new Paciente();
		paciente.setNome(nome);
		paciente.setCpf(cpf);
		paciente.setIdentificacaoCivil(rg);
		paciente.setEndereco(endereco);
		paciente.setPlanoDeSaude(planoDeSaude);
		
		service.salvar(paciente);
		System.out.println("Paciente cadastrado com sucesso.");
		menu.readStr("Pressione <ENTER> para continuar");
		
	}
	
	public void consultar(){
		
		System.out.println("*** Consulta de Paciente ***");
		
		System.out.println("1 - Por ID");
		System.out.println("2 - Por CPF");
		int op = menu.readInt("Digite uma opcao: ");
		
		if(op == 1){
			int id = menu.readInt("Digite o ID do paciente: ");
			paciente = new Paciente();
			paciente = service.pesquisarPorId(new Long(id));
			System.out.println(paciente.toString());
			menu.readStr("Pressione <ENTER> para continuar");
		}else if(op == 2){
			String cpf = menu.readStr("Digite o CPF do paciente: ");
			paciente = new Paciente();
			paciente = service.pesquisarPorCpf(cpf);
			System.out.println(paciente.toString());
			menu.readStr("Pressione <ENTER> para continuar");
		}else{
			System.out.println("Opcao invalida.");
		}

	}
	
	public void atualizar(){
		
		System.out.println("*** Atualizacao de Paciente ***");
		int id = menu.readInt("Digite o ID do paciente que deseja alterar: ");
		
		Paciente paciente = new Paciente();
		paciente = service.pesquisarPorId(new Long(id));
		
		System.out.println("Digite as novas informacoes:");
		String nome = menu.readStr("Nome: ");
		String cpf = menu.readStr("CPF: ");
		String rg = menu.readStr("RG: ");
		String endereco = menu.readStr("Endereco: ");
		String planoDeSaude = menu.readStr("Plano de Saude: ");
		
		paciente.setNome(nome);
		paciente.setCpf(cpf);
		paciente.setIdentificacaoCivil(rg);
		paciente.setEndereco(endereco);
		paciente.setPlanoDeSaude(planoDeSaude);
		
		service.alterar(paciente);
		System.out.println("Paciente atualizado com sucesso.");
		menu.readStr("Pressione <ENTER> para continuar");
		
	}

	


}
